<template>
	<view class="contain">
		<view class="card-contain">
			<view class=" card-public">
				<text>店铺号：{{detailInfo.storeId}}</text>
				<text>联系人：{{detailInfo.connectorName}}/{{detailInfo.connectorPhone}}</text>
				<text>店铺地址：{{detailInfo.address||""}}</text>
			</view>

			<view class="zong card-public">
				<u-collapse accordion>
					<u-collapse-item title="备注" name="Docs guide">
						<view class="user_box" style="width: 80%; margin: 40rpx auto;">
							<view class="user_for" v-for="(list,id) in remarklist" :key="id">
								<view class="line_box">
									<!-- 圆球 -->
									<view class="line_radio"
										:style="{ backgroundColor :  '#ef6f16' , border: 'solid 6rpx #fbc293' }">
									</view>
									<!-- 线 -->
									<view class="line_for" v-for="item in 3" :key="item" v-if="id<remarklist.length-1"
										:style="{ backgroundColor : '#ef6f16' }">
									</view>
								</view>
								<view class="right_box">
									<view class="title" :style="{ color : '#ef6f16'}">{{list.title}}
										<text style="margin-left: 20rpx;" v-if="list.title1">({{list.title1}})</text>
									</view>
									<view class="desc">
										{{list.desc||'无'}}
									</view>
								</view>
							</view>
						</view>
					</u-collapse-item>
					<u-collapse-item title="进度" name="Variety components">
						<view class="user_box" style="width: 80%; margin: 40rpx auto;">
							<view class="user_for" v-for="(list,id) in historyList" :key="id">
								<view class="line_box">
									<!-- 圆球 -->
									<view class="line_radio"
										:style="{ backgroundColor : list.istrue ? '#ef6f16' : '#8e8b8d' , border: list.istrue ? 'solid 6rpx #fbc293' : 'solid 6rpx #b9b7b6'}">
									</view>
									<!-- 线 -->
									<view class="line_for" v-for="item in 3" :key="item" v-if="id<historyList.length-1"
										:style="{ backgroundColor :  list.istrue ? '#ef6f16' : '#8e8b8d'}"></view>
								</view>
								<view class="right_box" :style="{ color : list.istrue ? '#ef6f16' : '#8e8b8d'}">
									<view class="title">{{list.title}}</view>
									<view class="desc" v-if="list.descTime">
										{{list.descTime}}
									</view>
								</view>
							</view>
						</view>
					</u-collapse-item>
				</u-collapse>
			</view>

			<view class="card-public">
				<text>外部工单号：{{detailInfo.maId}}</text>
				<text>故障描述：{{detailInfo.faultDescribe||'未知'}}</text>
				<text>响应级别：{{detailInfo.responseLevel}}</text>
			</view>
			<view class="card-public">
				<u--input :disabled="!canchange" placeholder="设备序列号"
					placeholder-style="font-size:30rpx;color: rgb(192,196,204);" v-model="item.serialNumber"
					border="bottom" clearable></u--input>
				<u--input :disabled="!canchange" placeholder="故障设备" v-model="item.faultEquipment"
					placeholder-style="font-size:30rpx;color: rgb(192,196,204);" border="bottom" clearable></u--input>

				<!-- 			<view class="textline">
					<picker :disabled="!canchange" mode="selector" @change="select($event,1)" :value="item.faultClass"
						:range="faultClassName">
						<view>{{faultClassName[item.faultClass]||"请选择问题分类"}}</view>
					</picker>
				</view> -->

				<view class="textline">
					<picker :disabled="!canchange" mode="selector" @change="select($event,2)" :value="item.faultCode"
						:range="faultCode">
						<view>{{faultCode[item.faultCode]||"请选择故障代码"}}</view>
					</picker>
				</view>

				<view class="textline">
					<picker :disabled="!canchange" mode="selector" @change="select($event,3)" :value="item.soluteCode"
						:range="soluteCode">
						<view>{{soluteCode[item.soluteCode]||"请选择解决代码"}}</view>
					</picker>
				</view>
				<view class="textline">
					<picker :disabled="!canchange" mode="selector" @change="select($event,1)"
						:value="item.finalFaultRepair" :range="finalFaultRepair">
						<view>{{finalFaultRepair[item.finalFaultRepair]||"请选择最终故障修复"}}</view>
					</picker>
				</view>
				<view class="textline">
					<picker :disabled="!canchange" mode="selector" @change="select($event,4)" :value="item.repairType"
						:range="repairType">
						<view>{{item.repairType==="remote"?"远程":"上门"}}</view>
					</picker>
				</view>
			</view>

			<view class="card-public">
				<text>现场验收图片：</text>
				<u-upload :disabled="!canchange" :deletable="canchange" :fileList="fileList2" @afterRead="afterRead"
					@delete="deletePic" name="2" multiple :maxCount="10"></u-upload>
				<view class="moreLine">
					工程师签字：<image class="nodeImage" v-if="imageEngineer.imagePath" @click="navgoto(1)"
						:src="imageEngineer.imagePath" mode="aspectFit">
					</image>
					<text v-else @click="navgoto(1)">点击签字</text>
				</view>
				<view class="moreLine">
					客户签字：
					<image class="nodeImage" v-if="imageUser.imagePath" @click="navgoto(0)" :src="imageUser.imagePath">
					</image>
					<text v-else @click="navgoto(0)">点击签字</text>
				</view>
			</view>
			<view v-if="canchange" class="card-public">
				<text>工程师现场反馈：</text>
				<u--input placeholder="请输入:" height="10rpx" type="textarea" v-model="orderRemark.remark" clearable>
				</u--input>

			</view>

			<view v-if="canchange" class="sub">
				<u-button type="primary" @click="save" text="保存草稿"></u-button>
				<u-button type="primary" @click="sub" :disabled="subDisabled" text="提交"></u-button>
			</view>
		</view>
	</view>
</template>

<script>
	import request from '@/utils/request.js'
	export default {
		data() {
			return {
				canchange: true,
				BaseUrl: "",
				item: {
					isGet: null, //是否收到货物
					arriveTime: null, //确认进场时间
					isOptionalDate: null, //核对点位时间
					wireStateTime: null, //综合布线状态 时间
					wireState: null, //综合布线状态
					eleState: null, //弱电端接状态
					eqIsPresent: null, //机柜到场日期 是否到场
					eqIsOptionalTime: null, //机柜到场日期 时间
					signState: null, //签单状态

					serialNumber: null, //序列号
					faultEquipment: null, //MA故障设备

					faultClass: null, //MA故障分类	
					faultCode: null, //MA故障代码	
					soluteCode: null, //MA解决代码	
					finalFaultRepair: null, //lv最终故障修复
					repairType: "onSite", //MA解决类型

					workOrderId: null,
					finishTime: null,
					workOrderStatus: 20, //工单状态
					workOrderTypeId: null //工单类型

				},
				subDisabled: false, //提交按钮是否可选
				workOrderImagesBos: [],
				detailInfo: {},
				remarkinfo: {},
				fileList1: [],
				fileList2: [],
				imageEngineer: {
					imagePath: '',
					imageTypeId: "70",
					workOrderId: undefined
				}, // 工程师签字确认
				imageUser: {
					imagePath: '',
					imageTypeId: "71",
					workOrderId: undefined
				}, //客户签字确认
				changeImageFlag: 0,
				orderRemark: {
					remarkType: 13,
					remark: undefined,
					workOrderId: undefined
				},
				value: null,
				remarklist: [],
				historyList: [],
				show: {
					show1: false,
					show2: false,
					show3: false,
					show4: false,
				},
				//MA故障代码
				faultCode: [],
				//MA解决代码
				soluteCode: [],
				// 最终故障修复
				finalFaultRepair: [],
				//MA解决类型
				repairType: this.$store.state.mafa.repair_type //remote Onsite
			};
		},
		computed: {
			remarktitle() {
				switch (this.detailInfo.workOrderTypeId) {
					case 1:
						return "派单备注"
					case 5:
						return "申请转单备注"
					case 10:
						return "拒绝转单理由"
					case 15:
						return "审核驳回理由"
					case 13:
						return "工程师现场反馈"
					case 20:
						return "项目经理备注"
					default:
						return "备注字典找不到"
				}
			},
			workid() {
				return this.detailInfo.workOrderId[0] + this.detailInfo.workOrderId[1] + this.detailInfo.workOrderId[2]
			}
		},
		onLoad(option) {
			this.getSoluteCode()
			this.getFaultCode()
			this.getRepairType()
			this.mountSelect(option.workOrderId)
			this.BaseUrl = getApp().globalData.BaseUrl
			if (option.canchange == "true") {
				this.canchange = true
			} else {
				this.canchange = false
			}
			// uni.getStorageSync(option.workOrderId)
			// uni.removeStorageSync('item');
		},
		mounted() {
			uni.$on('getSignImg', async({
				tempFile
			}) => {
				console.log('图片网址：', tempFile);
				const toUrl = await this.uploadFilePromise(tempFile,1);
				console.log('toUrlL:',toUrl);
				if (this.changeImageFlag == 1) {
					this.imageEngineer.imagePath = toUrl;
					this.imageEngineer.workOrderId = this.detailInfo.workOrderId;
				} else if (this.changeImageFlag == 0) {
					console.log('客户：', this.imageUser);
					this.imageUser.imagePath = toUrl;
					this.imageUser.workOrderId = this.detailInfo.workOrderId;
				} else {}
			});
		},
		methods: {
			// 签名
			navgoto(NUM) {
				console.log('意义：', NUM);
				console.log(this.changeImageFlag);
				if (this.canchange) {
					uni.navigateTo({
						url: '/pages/compoments/sign'
					})
					if (NUM) {
						this.changeImageFlag = 1;
					} else {
						this.changeImageFlag = 0;
					}

				}
			},
			async getSoluteCode() {
				const res = await request({
					url: 'prod-api/system/dict/data/type/lv_ma_solute_code'
				})
				console.log('lvMaSoluteCode为：', res.data);
				for (let i in res.data) {
					this.soluteCode.push(res.data[i].dictLabel);
				}
			},
			async getFaultCode() {
				const res = await request({
					url: 'prod-api/system/dict/data/type/lv_ma_fault_code'
				})
				console.log('lvMaFaultCode为：', res.data);
				for (let i in res.data) {
					this.faultCode.push(res.data[i].dictLabel);
				}
			},
			async getRepairType() {
				const res = await request({
					url: 'prod-api/system/dict/data/type/final_fault_repair'
				})
				console.log('finalFaultRepair为：', res.data);
				for (let i in res.data) {
					this.finalFaultRepair.push(res.data[i].dictLabel);
				}
			},
			select(item, num) {
				console.log("select", num, item.detail)
				switch (num) {
					case 1:
						this.item.finalFaultRepair = item.detail.value;
						break;
					case 2:
						this.item.faultCode = item.detail.value;
						break;
					case 3:
						this.item.soluteCode = item.detail.value;
						break;
					case 4:
						item.detail.value == 0 ? this.item.repairType = "remote" : this.item.repairType = "onSite"
						break;
				}

			},
			gettime() {
				var nowdate = new Date();
				var year = nowdate.getFullYear()
				var month = nowdate.getMonth() + 1
				var date = nowdate.getDate()
				var day = nowdate.getDay()
				var h = nowdate.getHours()
				var m = nowdate.getMinutes()
				var s = nowdate.getSeconds()
				var nowtime = year + "-" + month + "-" + date + " " + h + ":" + m + ":" + s;
				return nowtime
			},
			//清理本地缓存数据
			clearLocal() {
				uni.removeStorageSync(this.detailInfo.workOrderId)
				uni.removeStorageSync(this.detailInfo.workOrderId + "img")
				uni.removeStorageSync(this.detailInfo.workOrderId + "filelist1")
				uni.removeStorageSync(this.detailInfo.workOrderId + "filelist2")
				uni.removeStorageSync(this.detailInfo.workOrderId + "imageEngineer")
				uni.removeStorageSync(this.detailInfo.workOrderId + "imageUser")
				uni.removeStorageSync(this.detailInfo.workOrderId + "item")
			},
			//提交
			sub() {
				if (this.imageEngineer.imagePath && this.imageUser.imagePath) {
					this.subDisabled = true;
					setTimeout(() => {
						this.subDisabled = false;
					}, 3000);
					this.workOrderImagesBos.push(this.imageEngineer);
					this.workOrderImagesBos.push(this.imageUser);
					this.item.workOrderId = this.detailInfo.workOrderId
					this.item.finishTime = this.gettime()
					var obj = this.item
					for (var key in obj) {
						if (obj[key] == null) {
							delete obj[key]
						}
					}
					this.item = obj;
					this.lvma()
				} else {
					uni.showToast({
						title: '工程师或客户未签字，不可提交',
						icon: 'none'
					})
				}

			},
			//保存草稿
			save() {
				uni.setStorage({
					key: this.detailInfo.workOrderId, // 存储值的名称
					data: this.item, //   将要存储的数据
					success: res => {
						// 成功后的回调
					}
				});
				uni.setStorage({
					key: this.detailInfo.workOrderId + "img", // 存储值的名称
					data: this.workOrderImagesBos, //   将要存储的数据
					success: res => {
						// 成功后的回调
					}
				});
				uni.setStorage({
					key: this.detailInfo.workOrderId + "filelist1", // 存储值的名称
					data: this.fileList1, //   将要存储的数据
					success: res => {
						// 成功后的回调
					}
				});
				uni.setStorage({
					key: this.detailInfo.workOrderId + "filelist2", // 存储值的名称
					data: this.fileList2, //   将要存储的数据
					success: res => {
						// 成功后的回调
					}
				});
				uni.setStorage({
					key: this.detailInfo.workOrderId + "item", // 存储值的名称
					data: this.item, //   将要存储的数据
					success: res => {
						// 成功后的回调
					}
				});
				uni.setStorage({
					key: this.detailInfo.workOrderId + "imageEngineer", // 存储值的名称
					data: this.imageEngineer, //   将要存储的数据
					success: res => {
						// 成功后的回调
					}
				});
				uni.setStorage({
					key: this.detailInfo.workOrderId + "imageUser",
					data: this.imageUser,
					success: (res) => {

					}
				})
				uni.reLaunch({
					url: '/pages/home/lv/lvmain'
				})
			},
			get(option) {
				uni.getStorage({
					key: option.workOrderId, // 储存在本地的变量名
					success: res => {
						// 成功后的回调
						this.item = res.data // hello  这里可做赋值的操作 
					}
				})
				uni.getStorage({
					key: option.workOrderId + "img", // 储存在本地的变量名
					success: res => {
						// 成功后的回调
						this.workOrderImagesBos = res.data // hello  这里可做赋值的操作
					}
				})
				uni.getStorage({
					key: option.workOrderId + "filelist1", // 储存在本地的变量名
					success: res => {
						// 成功后的回调
						this.fileList1 = res.data // hello  这里可做赋值的操作 
					}
				})
				uni.getStorage({
					key: option.workOrderId + "filelist2", // 储存在本地的变量名
					success: res => {
						// 成功后的回调
						this.fileList2 = res.data // hello  这里可做赋值的操作
					}
				})
				uni.getStorage({
					key: option.workOrderId + "imageEngineer", // 储存在本地的变量名
					success: res => {
						// 成功后的回调
						this.imageEngineer = res.data // hello  这里可做赋值的操作
					}
				});
				uni.getStorage({
					key: option.workOrderId + "imageUser", // 储存在本地的变量名
					success: res => {
						// 成功后的回调
						this.imageUser = res.data // hello  这里可做赋值的操作
					}
				})
				uni.getStorage({
					key: option.workOrderId + "item", // 储存在本地的变量名
					success: res => {
						// 成功后的回调
						this.item = res.data // hello  这里可做赋值的操作
					}
				})
			},
			// 删除图片
			deletePic(event) {
				this[`fileList${event.name}`].splice(event.index, 1)
			},
			// 新增图片
			async afterRead(event) {
				// 当设置 mutiple 为 true 时, file 为数组格式，否则为对象格式
				let lists = [].concat(event.file)
				let fileListLen = this[`fileList${event.name}`].length
				lists.map((item) => {
					this[`fileList${event.name}`].push({
						...item,
						status: 'uploading',
						message: '上传中'
					})
				})
				for (let i = 0; i < lists.length; i++) {
					const result = await this.uploadFilePromise(lists[i].url, event.name)
					let item = this[`fileList${event.name}`][fileListLen]
					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
						status: 'success',
						message: '',
						url: result
					}))
					fileListLen++
				}
			},
			uploadFilePromise(url, name) {
				console.log('jinru');
				return new Promise((resolve, reject) => {
					uni.$u.http.upload(`${this.BaseUrl}/prod-api/system/oss/upload`, {
						params: {},
						/* 会加在url上 */
						// #ifdef APP-PLUS || H5
						files: [], // 需要上传的文件列表。使用 files 时，filePath 和 name 不生效。App、H5（ 2.6.15+）
						// #endif
						filePath: url, // 要上传文件资源的路径。
						// 注：如果局部custom与全局custom有同名属性，则后面的属性会覆盖前面的属性，相当于Object.assign(全局，局部)
						custom: {
							auth: true
						}, // 可以加一些自定义参数，在拦截器等地方使用。比如这里我加了一个auth，可在拦截器里拿到，如果true就传token
						name: 'file', // 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容
						// #ifdef H5 || APP-PLUS
						timeout: 60000, // H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)
						// #endif
						header: {
							Authorization: uni.getStorageSync("token")
						},
						/* 会与全局header合并，如有同名属性，局部覆盖全局 */
						formData: {}, // HTTP 请求中其他额外的 form data
						// 返回当前请求的task, options。请勿在此处修改options。非必填
						getTask: (task, options) => {},
					}).then((res) => {
						if (name == 2) {
							this.workOrderImagesBos.push({
								imagePath: res.data.data.url.replace("blob:", ""),
								imageTypeId: "5",
								workOrderId: this.detailInfo.workOrderId
							})
						}
						console.log('图片：', res.data.data.url);
						resolve(res.data.data.url)
						// 返回的res.data 已经进行JSON.parse
					}).catch(err => {

					})


					// let a = uni.uploadFile({
					// 	url: 'http://192.168.2.21:7001/upload', // 仅为示例，非真实的接口地址
					// 	filePath: url,
					// 	name: 'file',
					// 	formData: {
					// 		user: 'test'
					// 	},
					// 	success: (res) => {
					// 		setTimeout(() => {
					// 			resolve(res.data.data)
					// 		}, 1000)
					// 	}
					// });
				})
			},

			//请求有关
			doremark(data) {
				console.log('doremark方法', data)
				data.forEach((item, index) => {
					this.remarklist.push({
						id: index,
						title: item.remarkTypeName,
						title1: "",
						desc: item.remark,
						isture: true,
						url: ""
					})
				})
				const copyItem = this.detailInfo
				console.log('copyItem:', copyItem);
				this.historyList.push({
					id: 0,
					descTime: copyItem.mailReceiveTime,
					title: '邮件接单时间',
					istrue: !!copyItem.mailReceiveTime && true
				}, {
					id: 1,
					descTime: copyItem.createTime,
					title: '派单时间',
					istrue: !!copyItem.createTime && true
				}, {
					id: 2,
					descTime: copyItem.pickOrderTime,
					title: '工程师接单时间',
					istrue: !!copyItem.pickOrderTime && true
				}, {
					id: 3,
					descTime: copyItem.expectArriveTime,
					title: '预计到场时间 ',
					istrue: !!copyItem.expectArriveTime && true
				}, {
					id: 4,
					descTime: copyItem.arriveTime,
					title: '到场时间',
					istrue: !!copyItem.arriveTime && true
				}, {
					id: 5,
					descTime: copyItem.finishTime,
					title: '解决时间',
					istrue: !!copyItem.finishTime && true
				}, {
					id: 6,
					descTime: copyItem.endOrderTime,
					title: '审核时间',
					istrue: !!copyItem.endOrderTime && true
				})
				console.log(this.remarklist)
				console.log(this.historyList);
			},
			async mountSelect(workOrderId) {
				await request({
					url: "prod-api/system/lv-workOrder/" + workOrderId,
					method: "get",
				}).then((res) => {
					console.log('mountSelect方法结果值为：', res.data);
					console.log('code的值为：', res.code)
					if (res.code < 300) {
						this.detailInfo = res.data.selectLvMaWorkOrderVo
						this.remarkinfo = res.data.workOrderRemarkVo
						// error: 当状态为KOl时，进行到这一步便不再进行，因为kol的selectLvMaWorkOrderVo为空
						this.item.faultCode = res.data.selectLvMaWorkOrderVo.faultCode
						this.item.soluteCode = res.data.selectLvMaWorkOrderVo.soluteCode
						this.item.repairType = res.data.selectLvMaWorkOrderVo.repairType
						this.item.finalFaultRepair = res.data.selectLvMaWorkOrderVo.finalFaultRepair
						this.item.serialNumber = res.data.selectLvMaWorkOrderVo.serialNumber
						this.item.faultEquipment = res.data.selectLvMaWorkOrderVo.faultEquipment
						this.doremark(res.data.workOrderRemarkVos)
						res.data.workOrderImagesVos.forEach((item, index) => {
							if (item.imageTypeId == "5") {
								this.fileList2.push({
									type: "image",
									url: item.imagePath,
									status: "success",
									name: "",
									message: "",
									thumb: "",
									size: 60489
								})
							} else if (item.imageTypeId == '70') {
								this.imageEngineer.imagePath = item.imagePath;
							} else if (item.imageTypeId == "71") {
								this.imageUser.imagePath = item.imagePath;
							}
						})
					}
				})
				await this.get({
					workOrderId
				})

			},
			//导出订单图片
			downImages(type) {
				// if(type=="导出PDF图纸"){
				// 	var paramsData={
				// 		imageTypeId: "20",
				// 		workOrderId: this.detailInfo.workOrderId
				// 	}
				// }else if(type=="导出设备清单"){
				// 	var paramsData={
				// 		imageTypeId: "25",
				// 		workOrderId: this.detailInfo.workOrderId
				// 	}
				// }
				request({
					url: "prod-api/system/orderImages/downloadList?imagesBos=" + this.detailInfo.workOrderId,
					method: "get",
				}).then((res) => {
					console.log(res)
					if (res.code < 300) {
						uni.downloadFile({
							url: res.data,
							success: (res) => {
								if (res.statusCode === 200) {
									uni.saveImageToPhotosAlbum({
										filePath: res.tempFilePath,
										success: function() {
											uni.showToast({
												title: "保存成功",
												icon: "none"
											});
										},
										fail: function() {
											uni.showToast({
												title: "保存失败，请稍后重试",
												icon: "none"
											});
										}
									});
								}
							}
						})
					}
				})
			},


			lvma() {
				this.item.workOrderTypeId = 1
				console.log(this.item)
				console.log(this.workOrderImagesBos)
				this.orderRemark.workOrderId = this.item.workOrderId
				request({
					url: "prod-api/system/orderRemark",
					method: "post",
					data: this.orderRemark
				}).then((res) => {
					console.log(res)
				})
				request({
					url: "prod-api/system/lv-workOrder",
					method: "put",
					data: {
						updateLvMaWorkOrderBo: this.item,
						workOrderImagesBos: this.workOrderImagesBos
					}
				}).then((res) => {
					console.log(res)
					if (res.code < 300) {
						this.clearLocal()
						uni.reLaunch({
							url: '/pages/home/lv/lvmain'
						})
					}
				})
			},
			// koo() {
			// 	console.log(this.item)
			// 	console.log(this.workOrderImagesBos)
			// 	this.item.workOrderImagesBos = this.workOrderImagesBos
			// 	request({
			// 		url: "prod-api/system/workOrder",
			// 		method: "put",
			// 		data: this.item
			// 	}).then((res) => {
			// 		console.log(res)
			// 		if (res.code < 300) {
			// 			this.clearLocal()
			// 			uni.switchTab({
			// 				url: '/pages/home/index'
			// 			})
			// 		}
			// 	})
			// },
			// rgma() {
			// 	this.item.workOrderTypeId = 1
			// 	console.log(this.item)
			// 	console.log(this.workOrderImagesBos)
			// 	request({
			// 		url: "prod-api/system/rg-workOrder",
			// 		method: "put",
			// 		data: {
			// 			updateRgMaWorkOrderBo: this.item,
			// 			workOrderImagesBos: this.workOrderImagesBos
			// 		}
			// 	}).then((res) => {
			// 		console.log(res)
			// 		if (res.code < 300) {
			// 			this.clearLocal()
			// 			uni.switchTab({
			// 				url: '/pages/home/index'
			// 			})
			// 		}
			// 	})
			// },
		}
	}
</script>

<style lang="scss">
	.contain {
		width: 100%;
		height: 100%;
		position: absolute;
		background-color: rgb(245, 245, 245);

		.card-contain {
			.card-public {
				display: flex;
				flex-direction: column;
				background-color: white;
				justify-content: space-between;
				width: 90%;
				margin: 30upx 5%;
				box-sizing: border-box;
				padding: 10upx 0;
				padding-left: 40upx;
				border-radius: 30upx 30upx 30upx 30upx;
				box-shadow: 0 0 15px rgb(232, 232, 232);

				.textline {
					border-bottom: 1px solid rgb(218, 219, 222);
					color: rgb(192, 196, 204);
					width: 100%;
					line-height: 60upx;
					font-size: 30rpx;
				}

				.radio {
					margin-top: 20upx;
				}

				text {
					font-size: 32upx;
					margin-top: 8upx;
					margin-bottom: 20upx;
				}
			}

			.btn {
				display: flex;
			}

		}

		.sub {
			padding-bottom: 100upx;
			display: flex;
			justify-content: space-between;

			button {
				width: 300upx;
				height: 60upx;
			}
		}
	}

	.zong {

		.user_for {
			display: flex;
		}

		.item_year {
			font-size: 34rpx;
			height: 50rpx;
		}

		.line_for {
			width: 4rpx;
			height: 24rpx;
			margin: 0 20rpx 10rpx;
		}

		.line_radio {
			width: 20rpx;
			height: 20rpx;
			border-radius: 50%;
			position: relative;
			left: 50%;
			transform: translateX(-50%);
			top: 0;
		}

		.right_box {
			padding: 0rpx 20rpx 20rpx 20rpx;
		}

		.desc {
			font-size: 30rpx;
			display: flex;
			margin-top: 20rpx;
			align-items: center;

		}

	}

	.moreLine {
		border-bottom: 1px solid rgb(218, 219, 222);
		width: 100%;
		line-height: 60upx;
		font-size: 30rpx;
	}

	.nodeImage {
		transform: rotate(-90deg);
	}
</style>
